import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import path from 'path'
import postcsspxtoviewport from 'postcss-px-to-viewport'



// https://vitejs.dev/config/
export default defineConfig({
  server:{
    open: true, // 自动浏览
    port: 1994, // 更改服务端口
    // https: true,
    proxy: {
      "/api": {
        target: "https://django.starbucket.xyz",
        changeOrigin: true, //必须要开启跨域
        secure: true,
        rewrite: (path) => path.replace(/\/api/, ""), // 路径重写
      },
      // "/api": {
      //   target: "http://127.0.0.1:8000",
      //   changeOrigin: true, //必须要开启跨域
      //   secure: true,
      //   rewrite: (path) => path.replace(/\/api/, ""), // 路径重写
      // },
    }
  },

  resolve:{
    alias: {
      "@": path.resolve(__dirname, 'src')
    }
  },

  plugins: [
    vue(),
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [ElementPlusResolver()],
    }),

  ],
  // 网页大小自适应
  css: {
    postcss: {
      plugins: [
        postcsspxtoviewport({
          // 要转化的单位
          unitToConvert: 'px',
          // UI设计稿的大小
          viewportWidth: 1920,
          //根据设计稿宽度除以10进行设置
          rootValue: 192,
          // 转换后的精度
          unitPrecision: 6,
          // 转换后的单位
          viewportUnit: 'vw',
          // 字体转换后的单位
          fontViewportUnit: 'vw',
          // 能转换的属性，*表示所有属性，!border表示border不转
          propList: ['*'],
          // 指定不转换为视窗单位的类名，
          selectorBlackList: ['ignore-'],
          // 最小转换的值，小于等于1不转
          minPixelValue: 1,
          // 是否在媒体查询的css代码中也进行转换，默认false
          mediaQuery: true,
          // 是否转换后直接更换属性值
          replace: true,
          // 忽略某些文件夹下的文件或特定文件，例如 'node_modules' 下的文件
          exclude: [],
          // 包含那些文件或者特定文件
          include: [],
          // 是否处理横屏情况
          landscape: false
        }),
      ]
    }
  }
})
